package com.huifai.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.huifai.entity.SysOrg;
import com.huifai.vo.request.SysOrgRequest;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 组织机构表 服务类
 * </p>
 *
 * @author wcj
 * @since 2019-07-16
 */
public interface ISysOrgService extends IService<SysOrg> {

    /**
     * 通过机构名称查询机构信息
     * @param orgName
     * @return
     */
    List<SysOrg> findSysOrgByName(String orgName);

    /**
     * 查询组织机构下面的子机构
     * @param orgId
     * @return
     */
    List<SysOrg> getChildrenOrgById(Long orgId);

    /**
     * 组织机构分页查询
     * @param sysOrgRequest
     * @param page
     * @return
     */
    IPage<SysOrg> pageQuery(SysOrgRequest sysOrgRequest, Page<SysOrg> page);

    /**
     * 根据id集合查询组织机构列表
     * @param orgIdList
     * @return
     */
    List<SysOrg> listOrgsByIds(List<Long> orgIdList);

    /**
     * 组装组织机构树形结构
     * @param orgList
     * @return
     */
    List<Map<String,Object>> listOrgTree(List<SysOrg> orgList);
}
